package com.easygem.business.mapper;

import com.easygem.common.model.business.SysNotice;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author 文晓平
 * @version 1.0
 * @Description 系统通知数据访问层
 * @date 2024/12/21 0:21
 */
public interface SysNoticeMapper extends Mapper<SysNotice>, com.easygem.business.mapper.Mapper<SysNotice> {
    /**
     * 按条件多表关联查询系统通知信息
     * @param sysNotice 系统通知对象
     * @return  集合列表
     */
    public List<SysNotice> selectSysNoticeList(SysNotice sysNotice);
    /**
     * 删除多个通知
     * @param map  多个id
     */
    public int deleteMore(Map<String, Object> map);


    /**
     * 发布范围是全部时，将数据添加到前台的系统通知
     * @param sysNotice
     * @return
     */
    int insertSysNotice(SysNotice sysNotice);

    /**
     * 根据用户id查询出系统通知
     * @param userId 用户id
     * @return
     */
    List<SysNotice> selectByUserId(@Param("userId") Long userId);

    /**
     * 添加是否已读系统通知
     * @param userId 用户id
     * @param noticeId 系统通知id
     * @return
     */
    int addSysNoticeIs(@Param("userId") Long userId,@Param("noticeId") Long noticeId);

    /**
     * 根据系统通知id删除系统通知
     * @param noticeId id
     * @return
     */
    int deleteSysNoticeIsByNoticeId(@Param("noticeId") Integer noticeId);
    /**
     * 根据多个系统通知id删除系统通知
     * @param map id集合
     * @return
     */
    int deleteSysNoticeIsByNoticeIdMap(Map<String, Object> map);
}
